P_("Visible"),
P_("Whether the status icon is visible"),
TRUE,
- GTK_PARAM_READWRITE));
+ GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
/**
P_("Has tooltip"),
P_("Whether this tray icon has a tooltip"),
FALSE,
- GTK_PARAM_READWRITE));
+ GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
+
/**
* GtkStatusIcon:tooltip-text:
*
gboolean has_tooltip)
{
GtkStatusIconPrivate *priv;
+ gboolean changed = FALSE;
g_return_if_fail (GTK_IS_STATUS_ICON (status_icon));
#ifdef GDK_WINDOWING_X11
if (priv->tray_icon)
- gtk_widget_set_has_tooltip (priv->tray_icon, has_tooltip);
+ {
+ if (gtk_widget_get_has_tooltip (priv->tray_icon) != has_tooltip)
+ {
+ gtk_widget_set_has_tooltip (priv->tray_icon, has_tooltip);
+ changed = TRUE;
+ }
+ }
#endif
#ifdef GDK_WINDOWING_WIN32
+ changed = TRUE;
if (!has_tooltip && priv->tooltip_text)
gtk_status_icon_set_tooltip_text (status_icon, NULL);
#endif
#ifdef GDK_WINDOWING_QUARTZ
+ changed = TRUE;
if (!has_tooltip && priv->tooltip_text)
gtk_status_icon_set_tooltip_text (status_icon, NULL);
#endif
+
+ if (changed)
+ g_object_notify (G_OBJECT (status_icon), "has-tooltip");
}
/**